System and method for generating financing structures using clustering

ABSTRACT

Described herein is a system for generating financing structures. A learning engine may extract data sets associated with sellers of various products. The learning engine may be trained using the data sets. The learning engine may identify a subset of dimensions that cause a change in a determination of a final price for a given product. The learning engine may compute a value for each of the sellers with respect to each dimension. The learning engine may group the sellers into different clusters. The learning engine may generate using a model, including the subset of dimensions. The learning engine may receive a request to generate a financing structure for a specified product sold by a specified seller. The learning engine may generate financing structures for the specified product sold by the specified seller based on the generated model.

BACKGROUND

Different entities such as car dealerships, home builders, real estateagents, retail stores interface with different financial intuitions forfinancing a product for sale. The product may be automobiles, houses,appliances, furniture, and/or the like. Each of these entities mayoperate differently and may have different methodologies to determine afinal sales price for a particular product.

Determining a financing structure without understanding an entity'sneeds may be a slow and error-prone process. The financial institutionmay not generate financing structures that best fit the entity evenafter multiple iterations. Transmitting multiple requests and receivingmultiple financing structures may be computationally expensive andcreate a network bottleneck.

BRIEF DESCRIPTION OF THE FIGURES

The accompanying drawings, which are incorporated herein and form partof the specification, illustrate the present disclosure and, togetherwith the description, further serve to explain the principles of thedisclosure and enable a person skilled in the relevant art to make anduse the disclosure.

FIG. 1 is a block diagram illustrating data flow for a system forgenerating financing structures according to some embodiments.

FIG. 2 is a block diagram illustrating clusters positioned on amulti-dimensional graph according to some embodiments.

FIG. 3 is a block diagram illustrating various dimensions for themulti-dimensional graph according to some embodiments.

FIG. 4 is a block diagram illustrating dimensions and weights for themulti-dimensional graph according to some embodiments.

FIG. 5 illustrates a graph including nodes and edges, indicating aseller's score for different dimensions.

FIG. 6 illustrates an example environment in which systems and/ormethods for generating financing structures are implemented according tosome embodiments.

FIG. 7 is a flowchart illustrating a process for authorizing secondaryusers to access a primary user's account, according to some embodiments.

FIG. 8 is a block diagram of example components of a device, accordingto some embodiments.

The drawing in which an element first appears is typically indicated bythe leftmost digit or digits in the corresponding reference number. Inthe drawings, like reference numbers may indicate identical orfunctionally similar elements.

DETAILED DESCRIPTION

Described herein is a system for generating financing structures. Alearning engine may extract data sets associated with sellers of variousproducts. Each data set may be associated with a dimension used forgenerating a financing structure. The learning engine may be trainedusing the data sets. The learning engine may identify a subset ofdimensions that cause a change in a determination of a final price for agiven product for more than a threshold amount of sellers and whichcause a change in the determination of the final price more than athreshold amount. The learning engine may compute a value for each ofthe sellers with respect to each dimension of the subset of dimensions.The learning engine may group the sellers into different clusters. Eachcluster may include a subset of sellers having a value for a givendimension within a predetermined amount of each other. The learningengine may be generated using a model including the subset ofdimensions.

The learning engine may receive a request to generate a financingstructure for a specified product sold by a specified seller. Thelearning engine may generate financing structures for the specifiedproduct sold by the specified seller based on a generated model and anidentified price of the specified product set by the specified seller.The learning engine may use a machine-learning algorithm to generatefinancing structures for the specified product sold by the specifiedseller. The machine learning algorithm may be an unsupervised machinelearning algorithm, such as K-means clustering.

The system provides a financing structure that may be predicted to beacceptable to the particular seller for a given product while meetinglender credit decisioning requirements and buyer preferences. This way,the seller and buyer are presented with financing structures that arespecifically geared to effectively moving the parties to agreement onthe financing structure enabling the product to be purchased given thepricing structure of the product. In this regard, the system solves thetechnical problem of transmitting multiple requests for generatingfinancing structures and receiving each of the financing structures. Inthis configuration, the system reduces the amount of computer resourcesrequired and avoids potential network bottleneck.

FIG. 1 is a block diagram illustrating data flow for a system forgenerating financing structures according to some embodiments. Inoperation 100, a seller (e.g., automobile dealership) of a specifiedproduct (e.g., an automobile) may interface with a financial institutionto generate a financing deal for purchasing the specified product.

In operation 102, the financing deal may go through an underwritingprocess. For example, the financial institution may underwrite thefinancing for purchasing the specified product. The underwriting processmay generate a decision structure 109 for the financing deal. Thedecision structure may govern the rules of determining a final financingstructure. For example, multiple different attributes may be factoredinto determining the final financing structure. The multiple differentattributes may include the final sale price of the specified product,the breakdown of the sale price, the amount of down payment beingprovided, details related to the product (e.g., condition of theproduct, whether the product is new or used, type of product, and/or thelike), and/or the like. The decision structure may vary for eachfinancial institution and seller.

The financing structure details may be stored in a data store 104, afterthe underwriting process. The data store 104 may store information suchas the financing structure details (e.g., APR, total amount financed,time period of the loan, customer details, credit score of the customer,and/or the like). Data store 104 may also store information such asrecalculations, callbacks, and contracts. Recalculations may bedifferent calculations executed to arrive at the final financingstructure. Callbacks may be counter offers offered by the financialinstitutions to arrive at the final financing structure. For example, afinancial institution may approve a customer for certain financingoffers; however, may not approve the customer for a specific financingstructure. In this situation, the financial institution may present acounteroffer to the specific financing structure that was not approvedby the financial institution. The financing structure may include acombination of the type of product and specific structure aspects (salesprice, back end products, trade-in value if present, cash down, etc.). Afinancial institution may present counteroffers, including differentfinancing structures, until the parties come to an agreement on thefinal financing structure. In this regard, the financing structure isoptimized for the customer and seller. Data store 104 may storeinformation related to financing structures generated for differentsellers 110 of different products.

A dealer profile engine 106 may continuously receive the informationstored in data store 104 as well as any financing structure after theunderwriting processing, including generated decision structure 109.Dealer profile engine 106 may be trained using the data received fromdata store 104 and generated decision structures 109. Dealer profileengine 106 may group various sellers into different clusters 110 basedon the data received from data store 104 and generated decisionstructures 109.

Dealer profile engine 106 may determine which attributes impact thedetermination of the final financing structure for more than a thresholdamount of sellers 110. Furthermore, dealer profile engine 106 maydetermine which attributes impact the final financing structure morethan a threshold amount. Dealer profile engine 106 may then compute avalue for each seller for each attribute, based on the data receivedfrom data store 104 and generated decision structures 109. Dealerprofile engine 106 may group sellers 110 into clusters based on theirvalue for each attribute. For example, a cluster may include sellers 110with values for a given attribute within a threshold amount. Dealerprofile engine 106 may generate a model such as a multi-dimensionalgraph. Each dimension of the multi-dimensional graph may correspond withan attribute determined to impact the determination of the finalfinancing structure for more than a threshold amount of sellers 110 andimpact the final financing structure more than a threshold amount.Dealer profile engine 106 may position the clusters on themulti-dimensional graph. Dealer profile engine 106 generates alternativefinancing structures 108 based on the position of the cluster(s),including the seller, on the multi-dimensional graph. Themulti-dimensional graph will be described in greater detail with respectto FIG. 2 .

The alternative financing structures 108 generated by the dealer profileengine 106 are generated based on a predictive model that may anticipateand facilitate an agreement between the customer and seller on analternative financing structure 108.

FIG. 2 is a block diagram illustrating clusters positioned on amulti-dimensional graph according to some embodiments. Dealer profileengine 106 may receive various sets of data 208. As stated above, dealerprofile engine 106 may receive decision structures for generatingfinancing structures and data from the data store. The data of thedecision structures and the data from the data store may be included insets of data 208. Sets of data 208 may include a sales price, backendvalue of the sales price, frontend value of the sales price, percentageof the sales price that is the backend value as compared to the totalvalue of the product, funded structured flag, and/or the like. Dealerprofile engine 106 may be continuously trained using sets of data 208.The funded structured flag may indicate whether the seller prefersprotection for assuming the credit risk.

As described with respect to FIG. 1 , dealer profile engine 106 maydetermine which attributes impact the determination of the finalfinancing structure for more than a threshold amount of sellers andwhich attributes impact the final financing structure more than athreshold amount, resulting in a subset of attributes. Dealer profileengine 106 may generate a dimension for each attribute in the subset ofattributes, resulting in a subset of dimensions.

Dealer profile engine 106 may then compute a value for each seller foreach dimension. Dealer profile engine 106 may group sellers intoclusters based on their value for each attribute. Dealer profile engine106 may generate a model such as a multi-dimensional graph 210. Eachdimension, x1, x2, xn, of multi-dimensional graph 210, may correspondwith a different attribute. Dealer profile engine 106 may positionclusters 200-206 on the multi-dimensional graph based on the values ofeach of the sellers for a given attribute.

As a non-limiting example, cluster 200 may include sellers whichpresented counter offers of the sales price more often than othersellers (e.g., countered on sales price). The dimension x2 maycorrespond with the frequency of counteroffers presented by sellers.Accordingly, dealer profile engine 106 may compute a higher value fordimension x2 for cluster 200 than clusters 202-206. Dealer profileengine 106 may position sellers in cluster 200 with respect to theirvalues with respect to dimension x1, x2, and xn.

As another non-limiting example, cluster 202 may include sellers whichpresented offers with a sales price including a higher percentage ofbackend value as compared to total price of the product, compared tosellers in clusters 200, 204, 206 (e.g., high BE as a % of book value(BV)). Dimension x1 may correspond to a percentage of backend value ascompared to a total price of the product. Accordingly, dealer profileengine 106 may compute a higher value for dimension x1 for sellers incluster 202 than clusters 200, 204, 206. Dealer profile engine 106 mayposition sellers in cluster 202 with respect to their values withrespect to dimension x1, x2, and xn.

As another non-limiting example, cluster 206 may include sellers who didnot bargain on the sales price of the product (e.g., no-haggle dealers).Accordingly, as dimension x2 corresponds with the frequency ofcounteroffers presented by sellers, dealer profile engine 106 maycompute a lower value for dimension x2 for cluster 204 than clusters200, 202, 206. Dealer profile engine 106 may position sellers in cluster204 with respect to their values with respect to dimension x1, x2, andxn.

Each cluster may be identified by an attribute. For example, cluster 200may be identified as Cluster-1: Countered on Sales Price; cluster 202may be identified as Cluster-2: High BE as a percentage of book value(BV); cluster 206 may be identified as Cluster-3: no-haggle dealers; andcluster 204 may be identified as cluster-k: k attribute.

In an embodiment, attributes can also include behavioral tendencies ofvarious sellers. Attributes may include percentages of vehicles of agiven make and model, seasonal variability, amount of time a product hasbeen on sale, financial bonuses or goals of the seller, and/or the like.As an example, an automobile dealership may sell more of a vehicle of agiven type of make and model as they may have more inventory of thevehicles of the given make and model. The automobile dealership mayreceive the vehicles of the given make and model and a lower price forpurchasing the vehicles in bulk. In light of this, the automobile dealermay be more flexible in negotiating the price of the vehicle on thegiven make and model. In another example, the automobile dealership mayhave certain financial goals at the end of key dates of the year (e.g.,end of the quarter, end of the year, end of the fiscal year, etc.). Theprice of vehicles may be affected based on the time of the year in aneffort for the automobile dealership to meet their respective goals. Inyet another example, a vehicle may remain unsold for a large amount ofdays. The price of this vehicle may be affected based on an effort forthe automobile dealership to sell this vehicle as soon as possible.

FIG. 3 is a graph illustrating various dimensions for themulti-dimensional graph according to some embodiments. A graph 300 mayinclude an x-axis 302 and a y-axis 304. X-axis 302 may include differenttypes of dimensions and values of the dimensions as they impact a finalsales price or financing structure of a product for various sellers.Y-axis 304 also includes different types of dimensions and values of thedimensions as they impact a final sales price or financing structure ofa product for various sellers.

As described above, dealer profile engine 106 may position clusters ofsellers on a multi-dimensional graph based on the values of each of thesellers for a given attribute. The position of the seller on themulti-dimensional graph may determine a seller profile. The sellerprofile may indicate patterns of seller behavior in determining thefinal price of a product.

The x-axis 302 and y-axis 304 may represent n-dimensions of attributesthat may be used to build the seller profiles. The distribution of eachof the graphs may indicate how statistically reliable each of then-dimensions of a seller profile are in determining how to characterizeany given seller. For example, x-axis 302 may represent variousscenarios such as counter offers by dollar amount intensity, and they-axis 304 may represent credit tiers, income of the applicant, or thenet trade-in value, and/or the like. The graphs can identify predictablepatterns of seller behavior based on the x-axis 302 and y-axis 304. Forexample, graphs can identify predictable patterns of seller behavior inresponse to any given combination of product/customer/structurescenarios to identify patterns and assess the strength of thosepatterns.

As described above, the dealer profile engine may determine whichattributes impact the determining of the sales price or final financingstructure which is identified as impacting the final financing structureof sales price more than a threshold amount of occurrences and whichattributes impact the sales price or final financing structure more thana threshold amount, resulting in a subset of attributes. Each attributecan correspond with a different dimension in the multi-dimensionalgraph.

The dealer profile engine may determine that an attribute impacts thesale price or final financing structure for more than a threshold amountof sellers by determining that the attribute changes the determinationor decision structure for a given seller in determining the sale priceor final financing structure. The dealer profile engine may determinethat the attribute impacts the sale price or final financing structurefor more than a threshold amount of sellers based on the generation of abell curve 306 at a specified value of the attribute.

In a non-limiting example, the seller may be an automobile dealership,and a dimension may be a frequency of counteroffers presented to abuyer. The dealer profile engine may determine that the sales price orfinal financing structure presented by more than a threshold amount ofautomobile dealers was affected for automobiles over $30,000.Furthermore, the dealer profile engine may determine that the differencein sales price or final financing structure presented by the more thanthreshold amount of dealers varied more than a threshold amount based ontheir willingness to present counteroffers. As an example, automobiledealer A may have refused to present counteroffers for automobiles over$30,000, as compared to automobile dealer B, which frequently presentedcounter offers for automobiles over $30,000, resulting in a differencein the final sales price for the same automobile of $5,000. In the eventthe threshold amount is any amount more than $2,000, the dealer profileengine may determine that frequency of presenting counter offers is animpactful attribute.

As another example, a dimension may be the weather on the day of a sale.The dealer profile engine may determine that the sales price or finalfinancing structure presented by less than a threshold amount ofautomobile dealers was affected by the weather. Furthermore, for thoseautomobile dealers for which the weather did affect the sales price orfinal financing structure, the amount the sales price or final financingstructure was less than a threshold amount. In this case, the dealerprofile engine may not deem the weather the day of the sale as animpactful attribute.

FIG. 4 is a chart 400 illustrating dimensions and weights for themulti-dimensional graph according to some embodiments. Chart 400includes dimensions 402 along the x-axis and feature weights 404 alongthe y-axis. Each dimension may be assigned a different weight based onhow much the dimension impacts the sales price or final financingstructure of a product. The individual weights within each of thedimensions (in this example, there are six dimensions) representdifferent observed values for attributes such as customer income orproduct information. The weights may be coefficients that establish howmuch weight to give to each of those attributes as the system scores aparticular financing structure along each dimension.

The dimensions represent the n-number of facets of differentiation(e.g., fixed price or not, Backend utilization, LTV utilization, etc.).Within each facet of differentiation, the weights individually establishscoring parameters that contribute to scoring each final price or finalfinancing structure against an established seller profile. The valuesassigned for explained variance represent the delta between expected andobserved outcomes. The dealer profile engine may recalibrate theweighting of attributes as it receives more data. In this way, thevariances function to inform continuous improvement in the weighting ofthe individual attributes within each dimension such that the variancebetween observed and expected outcomes becomes smaller and, in-turn,more accurate, over time.

In one embodiment, if a dimension is impactful in the determination ofthe sales price or final financing structure of a product, then theweight for that dimension is higher. Conversely, if a dimension is notimpactful in the determination of the sales price or final financingstructure of a product, then the weight of the dimension is lower.

In some embodiments, one dimension can affect the impact of anotherdimension. For example, if the product for sale is an automobile, afirst dimension is the year of the automobile, and a second dimension isthe color of the automobile. The color of the automobile may matter morefor determining the final sales price when the automobile is less thanten years old. Conversely, the color of the automobile may not matter asmuch for determining the final sales price when the automobile is morethan ten years old. In this regard, the impact of the second dimensionof color may vary depending on the value of the first dimension.

FIG. 5 illustrates a graph 500 including nodes and edges, indicating aseller's score for different dimensions. Graph 500 includes dimensionlines 502 with maximum nodes 503 connected by edges 504. The maximumnodes 503 may indicate a maximum value for each dimension alongdimension line 502. The maximum value may indicate that the dimension isthe most impactful in determining a sales price or final financingstructure for a product.

As described above, the dealer profile engine may determine a value foreach seller for each dimension. The value may correspond to howimpactful that particular dimension is for the seller in determining thesales price or final financing structure. For example, the value mayindicate how much the sales price or final financing structure changesbased on a given dimension.

The calculated values for the seller may be plotted on the graph 500along dimension lines 502. The values may be represented by nodes 508.Nodes 508 may be connected by edges 506. Nodes 508 may be connected toidentify values along dimension lines 502 of a single seller. The closernodes 508 are to maximum nodes 503 along the dimension lines 502, thehigher the calculated value for the seller for that particulardimension. In this regard, the higher the value (and the closer the node508 is to maximum node 503), the more impactful that particulardimension is for determining sales price or final financing structurefor a product.

FIG. 6 illustrates an example environment in which systems and/ormethods for generating financing structures are implemented according tosome embodiments. The environment may include a dealer profile engine106, a data store 104, a user device 646, external data sources 660, anda financial institution device 670. Dealer profile engine 160 mayinclude a modeling engine 600, a dimension engine 602, an output engine604, and an extraction engine 606. User device 646 may include anapplication 648 and a user interface 650. User device 646 may useapplication 648 to interface with dealer profile engine 106 andfinancial institution device 670. Financial institution device 670 mayinclude an application 672 and a user interface 674. The application 672may be used to interface with dealer profile engine 106 and user device646. Dealer profile engine 106 may be embodied as a learning engine.Application 648 may interface with dealer profile engine 106 to renderfinancing structures on user interface 650. Data store 104 may storeinformation regarding product sales by various sellers including, thefinal sales price of the product, details regarding the product,financing structures presented to the customer, final financingstructure accepted by the customer, contracts, and/or the like. Externaldata sources 660 may store information such as seller data includingproduct inventory, decision structures used by the seller to determinethe sales price of a product, average sales prices provided by theseller, negotiation characteristics, and/or the like. External datasources 660 may include but are not limited to, websites, databases,data repositories, excel files, and/or the like.

The devices of the environment 600 may be connected through wiredconnections, wireless connections, or a combination of wired andwireless connections. Dealer profile engine 106 and data store 104 mayreside inside cloud computing environment 640. Alternatively, Dealerprofile engine 106 and data store 104 may reside outside cloud computingenvironment 640.

In an example embodiment, one or more portions of the network 630 may bean ad hoc network, an intranet, an extranet, a virtual private network(VPN), a local area network (LAN), a wireless LAN (WLAN), a wide areanetwork (WAN), a wireless wide area network (WWAN), a metropolitan areanetwork (MAN), a portion of the Internet, a portion of the PublicSwitched Telephone Network (PSTN), a cellular telephone network, awireless network, a WiFi network, a WiMax network, any other type ofnetwork, or a combination of two or more such networks.

Backend platform 625 may include a server or a group of servers. In anembodiment, backend platform 625 may be hosted in a cloud computingenvironment 640. It may be appreciated that backend platform 625 may notbe cloud-based, or may be partially cloud-based.

Cloud computing environment 640 may include an environment that deliverscomputing as a service, shared resources, services, etc. Cloud computingenvironment 640 may provide computation, software, data access, storage,and/or other services that do not require end-user knowledge of aphysical location and configuration of a system and/or a device thatdelivers the services. Cloud computing system 640 may include computerresources 626.

Each computing resource 626 a-d may include one or more personalcomputers, workstations, computers, server devices, or other types ofcomputation and/or communication devices. Computing resource(s) 626 a-dmay host backend platform 625. The cloud resources may include computeinstances executing in cloud computing resources 626 a-d. Cloudcomputing resources 626 a-d may communicate with other cloud computingresources 626 a-d via wired connections, wireless connections, or acombination of wired or wireless connections.

Computing resources 626 a-d may include a group of cloud resources, suchas one or more applications (“APPs”) 626-1, one or more virtual machines(“VMs”) 626-2, virtualized storage (“VS”) 626-3, and one or morehypervisors (“HYPs”) 626-4.

Application 626-1 may include one or more software applications that maybe provided to or accessed by user device 646. In an embodiment,application 648 may execute locally on user device 646. Alternatively,the application 626-1 may eliminate a need to install and executesoftware applications on user device 646. The application 626-1 mayinclude software associated with backend platform 625 and/or any othersoftware configured to be provided across the cloud computingenvironment 640. The application 626-1 may send/receive information fromone or more other applications 626-1, via the virtual machine 626-2.

Virtual machine 626-2 may include a software implementation of a machine(e.g., a computer) that executes programs like a physical machine.Virtual machine 626-2 may be either a system virtual machine or aprocess virtual machine, depending upon the use and degree ofcorrespondence to any real machine by virtual machine 626-2. A systemvirtual machine may provide a complete system platform that supports theexecution of a complete operating system (OS). A process virtual machinemay execute a single program and may support a single process. Thevirtual machine 626-2 may execute on behalf of a user (e.g., user device646) and/or on behalf of one or more other backend platforms 625, andmay manage the infrastructure of cloud computing environment 640, suchas data management, synchronization, or long-duration data transfers.

Virtualized storage 626-3 may include one or more storage systems and/orone or more devices that use virtualization techniques within thestorage systems or devices of computing resources 626 a-d. With respectto a storage system, types of virtualizations may include blockvirtualization and file virtualization. Block virtualization may referto abstraction (or separation) of logical storage from physical storageso that the storage system may be accessed without regard to physicalstorage or heterogeneous structure. The separation may permitadministrators of the storage system flexibility in how administratorsmanage storage for end users. File virtualization may eliminatedependencies between data accessed at a file-level and location wherefiles are physically stored. This may enable optimization of storageuse, server consolidation, and/or performance of non-disruptive filemigrations.

Hypervisor 626-4 may provide hardware virtualization techniques thatallow multiple operations systems (e.g., “guest operating systems”) toexecute concurrently on a host computer, such as computing resources 626a-d. Hypervisor 626-4 may present a virtual operating platform to theguest operating systems and may manage the execution of the guestoperating systems multiple instances of a variety of operating systemsand may share virtualized hardware resources.

In an embodiment, dealer profile engine 106 may receive data from datastore 104 and may extract data from external data sources 660. Thedealer profile engine 106 may continuously be trained using the datafrom data store 104 and external data sources 660. As described above,data store 104 may store information regarding product sales by varioussellers including, the final sales price of the product, detailsregarding the product, financing structures presented to the customer,final financing structure accepted by the customer, contracts, and/orthe like. External data sources 660 may store information such as sellerdata including product inventory, decision structures used by the sellerto determine the sales price of a product, average sales prices providedby the seller, negotiation characteristics, and/or the like.

Dimension engine 602 may identify attributes that impact thedetermination of a sales price or final financing structure presented toa customer for a given product. Dimension engine 602 may identify asubset of attributes from multiple different attributes that cause achange in a determination of a final price for a given productidentified more than a threshold amount of occurrences and which cause achange in the determination of the final price more than a thresholdamount. Dimension engine 602 may eliminate the attributes based on thedata from data store 104 and external data sources 660. Dimension engine603 may remove data received from data store 104 or external datasources 660, which pertain to the eliminated attributes. Dimensionengine 602 may transform the subset of attributes into a subset ofdimensions for generating a multi-dimensional graph.

Modeling engine 600 may compute a value for each seller with respect toeach dimension of the subset of dimensions. The higher the value for theseller for a given dimension, this indicates the more impactful thatparticular dimension is in determining a sales price or final financingstructure for that seller. Modeling engine 600 may group each of thesellers into different clusters. Each cluster may include a subset ofsellers having a value for a given dimension within a predeterminedamount of each other. Modeling engine 600 may generate a model,including the subset of dimensions. The model may be a multi-dimensionalgraph. The dimensions of the multi-dimensional graph may be defined bythe subset of dimensions. Modeling engine 600 may position each clusteron a multi-dimensional graph based on each value of each seller in eachcluster for a given dimension.

In some embodiments, a given seller of a given product may generate apricing structure for the given product being purchased by a customer.Dealer profile engine 106 may receive a request to determine a financingstructure for the given seller and product. Output engine 604 maydetermine a cluster, including the given seller. Output engine 604 maydetermine the values for each dimension for the given seller. Outputengine 604 may generate a financing structure for the given seller andproduct based on the position of the identified cluster, including thegiven seller on the multi-dimensional graph and the values for eachdimension for the given seller. Output engine 604 may generate afinancing structure that is optimized for the customer, given thepricing structure of the product. For example, the financing structuremay provide the lowest APR, optimized payment schedule, lowest monthlypayment, and/or the like for the given customer, product, and pricingstructure. In an embodiment, the request may include a final sales pricefor the product.

In another embodiment, output engine 604 may forecast a final salesprice for the given product sold by the given seller based on the valuesfor each dimension for the given seller. In an embodiment, output engine604 may generate multiple different alternative financing structures.The financing structure may include annual percentage rate (APR), theperiod of the loan, amount of loan, date of origination of the loan,customer details, and/or the like.

In an embodiment, user device 646 may transmit the request forgenerating the financing structure using application 648. Output engine604 may transmit the financing structure to user device 646. Application648 may receive the financing structure and render financing structureon user interface 650.

Each time a financing structure is generated for a seller and the seller(or customer) accepts or rejects the financing structure, the datarelated to the financing structure is stored in the data store 104. Asstated above, the dealer profile engine 106 may continuously be trainedusing the data in the data store.

The dealer profile engine 106 may use a machine-learning algorithm togenerate financing structures for the specified product sold by thespecified seller. The machine learning algorithm may be an unsupervisedmachine learning algorithm, such as K-means clustering.

K-means clustering is a type of unsupervised learning algorithm. Thealgorithm may identify groups (or clusters) in the data. The number ofgroups may be identified by the variable K. The algorithm worksiteratively to assign each data point to one of the K groups based onthe features that are provided. Using K-means clustering, the dealerprofile engine 106 may attempt to group a seller into a cluster based ontheir values for each dimension.

As a non-limiting example, dealer profile engine 106 may be used togenerate financing structures for automobile sales. Dealer profileengine 106 may receive data from data store 104 and may extract datafrom external data sources 60. The dealer profile engine 106 maycontinuously be trained using the data from data store 104 and externaldata sources 660. Data store 104 may store information regardingautomobile sales by various dealers including, the final sales price ofthe automobiles, details regarding the automobiles, financing structurespresented to the customer, final financing structure accepted by thecustomer, contracts, and/or the like. External data sources 660 maystore information such as dealer data including automobile inventory,decision structures used by the seller to determine the sales price ofan automobile, average sales prices provided by the automobile,negotiation characteristics, and/or the like.

Dimension engine 602 may identify attributes that impact thedetermination of a sales price or final financing structure presented toa customer for a given product. Dimension engine 602 may identify asubset of attributes from multiple different attributes, which cause achange in a determination of a final price for a given product for morethan a threshold amount of sellers and which causes a change in thedetermination of the final price more than a threshold amount. Dimensionengine 602 may eliminate the attributes based on the data from datastore 104 and external data sources 660.

As an example, a dealer may factor in automobile make and model, year,color, condition, time of the month, inventory, demand, fuel type,and/or the like in determining a sales price for the automobile.Moreover, certain dealers may be willing to negotiate more than others.Some dealers may be willing to negotiate on the total value of theautomobile by increasing the backend value of services. For example,backend services may include extended warranties and service of thevehicle. Some dealers may reduce the total value of the automobile byadding in the backend value to the final sales price. In this regard, anattribute may include a percentage of backend value and/or front endvalue of the sales price. Out of all of these attributes, someattributes may affect or change the sales prices more than a thresholdamount as compared to the other attributes. Additionally, someattributes may affect or change the sales price for more than athreshold amount of dealers. Dimension engine 601 may transform thesubset of attributes into a subset of dimensions for generating amulti-dimensional graph.

Modeling engine 600 may compute a value for each dealer with respect toeach dimension of the subset of dimensions. The higher the value for theseller for a given dimension, this indicates the more impactful thatparticular dimension is in determining a sales price or final financingstructure for that seller. For example, the sales price for a givenautomobile may change more based on a dimension related to thepercentage of backend value in the sales price for a first and seconddealer as compared to a third and fourth dealer. Therefore, the valuefor that particular dimension may be higher for the first and seconddealer as compared to the value for that particular dimension for thethird and fourth dealer.

Modeling engine 600 may group each of the dealers into differentclusters. Each cluster may include a subset of dealers having a valuefor a given dimension within a predetermined amount of each other. Basedon the above example, the first and second dealers may be grouped in afirst cluster, and the third and fourth dealer may be grouped in asecond cluster. Modeling engine 600 may generate a model, including thesubset of dimensions. The model may be a multi-dimensional graph. Thedimensions of the multi-dimensional graph may be defined by the subsetof dimensions. Modeling engine 600 may position each cluster on amulti-dimensional graph based on each value of each dealer in eachcluster for a given dimension.

Modeling engine 600 may use the clusters to define dimensions of themulti-dimensional graph. For example, the modeling engine 600 mayidentify aggregate practices across all platforms. Modeling engine 600may determine dimensions which are more relevant/important to a givencluster based on its position on the multi-dimensional graph. Modelingengine 600 may use the relevant/important dimensions for the givencluster to generate a multi-dimensional graph for finalized sales andfinancing structures for a given dealer. Modeling engine 600 maydetermine values for attributes associated with the relevant/importantdimensions for each finalized sale or financing structure for the givendealer. Modeling engine 600 may group each finalized sale or financingstructure in a cluster based on the values for the attributes for eachfinalized sale or financing structure.

In some embodiments, dealer profile engine 106 may receive a request todetermine a financing structure for a given dealer and automobile.Output engine 604 may determine the values of attributes for therequested financing structure based on the information provided in therequest. Output engine 604 may determine a cluster of finalizedfinancing structures that closely matches the values of attributes forthe requested financing structure. Output engine 604 may generate afinancing structure for the given dealer and automobile based on theidentified cluster of finalized financing structures. The financingstructure may be optimized for the customer based on the customer'spreferences and based on a likelihood of the dealer agreeing to thefinalized financing structures (e.g., based on the dealer's profile).For example, the customer may choose to purchase an extended warrantywith the automobile. The output engine 604 will generate a financingstructure that includes financing for the extended warranty in thepricing structure. This way, the dealer and customer are presented withfinancing structures that are specifically geared to the automobilebeing purchased, given the pricing structure of the automobile.

In an embodiment, the user device 646 may be operated by the dealer. Thedealer may transmit the request for generating the financing structureto the dealer profile engine 106, using application 648. Output engine604 may transmit the financing structure to user device 646. Application648 may receive the financing structure and render financing structureon user interface 650.

In an embodiment, the dealer may transmit a request for generating a setof financing structures for a given automobile to the financialinstitution device 670 using application 648. Application 672 mayreceive the request. Application 672 may interface with the dealerprofile engine 106 to generate the set of financing structures.Application 672 may receive the set of financing structures and transmitthe set of financing structures to the user device 646. Application 648may receive the set of financing structures and render the set offinancing structures on the user interface 650.

In an embodiment, the dealer may transmit a request for generating afinancing structure for a given automobile (or a plurality ofautomobiles) to the financial institution device 670 using theapplication 648. Application 672 may receive the request. Application672 may interface with the dealer profile engine 106 to generate thefinancing structure for the given automobile or automobiles. Application672 may receive the financing structure and transmit the financingstructure to the user device 646. Application 648 may receive thefinancing structure and render the financing structure on the userinterface 650.

The financial institution may reject a specific financing structure forany given automobile and customer. The dealer may only allow for asingle counteroffer to the specific financing structure. Application 672may transmit a request for generating a counter offer financingstructure to the dealer profile engine 106. The dealer profile engine106 may identify and generate a counteroffer financing structure thatbest fits the dealer's tendencies and requirements, as described above.Application 672 may receive the counter offer financing structure andtransmit the financing structure to the user device 646. Application 648may receive the counter offer financing structure and render the counteroffer financing structure on the user interface 650. In an embodiment,dealer profile engine 106 may generate multiple different counterofferfinancing structures and select the one that best fits the particulardealer.

Each time a financing structure is generated for the seller (orcustomer) and the seller (or customer) accepts or rejects the financingstructure, the data related to the financing structure is stored in thedata store 104. As stated above, the dealer profile engine 106 maycontinuously be trained using the data in the data store 104. Forexample, the dealer profile engine 106 may identify attributesassociated with the dealer's determination of the final price based onthe new data that is collected, which may change the dealer's valueswith respect to one or more dimensions. In this regard, the dealerprofile engine 106 is in near real-time or at least periodically (e.g.,daily, hourly, weekly, monthly, etc.) being optimized based on new datacollected to generate accurate financing structure geared to effectivelymoving the parties to agreement on the financing structure enabling theproduct to be purchased given the pricing structure of the product.

FIG. 7 is a flowchart illustrating a process for generating financingstructures, according to some embodiments. It is to be appreciated theoperations may occur in a different order, and some operations may notbe performed.

Flowchart 700 starts at operation 702. In operation 702, an extractionengine may extract data sets associated with sellers. Each data set maybe associated with a dimension used for generating a financingstructure. The extraction engine may receive data from a data store ormay extract data from external data sources.

In operation 704, a dealer profile engine may be trained using the datasets. The dealer profile engine may be trained to identify a subset ofdimensions using a dimension engine, generate a multi-dimensional graphusing a modeling engine, and generate and output financial structuresusing the output engine. The dealer profile engine is continuouslytrained using the plurality of data sets.

In operation 706, the modeling engine may identify a subset ofdimensions that the plurality of sellers use in a determination of afinal price for a given product for more than a threshold amount ofoccurrences.

In operation 708, the modeling engine may compute a value for each ofthe plurality of sellers with respect to each dimension of the subset ofdimensions.

In operation 710, the modeling engine may group the sellers intodifferent clusters. Each cluster including a subset of sellers having avalue for a given dimension within a predetermined amount of each other.

In operation 712, the modeling engine may generate a model including thesubset of dimensions based on the plurality of clusters. The model maybe a multi-dimensional graph. The modeling engine may position theclusters along each of the subsets of dimensions on a graph, based oneach value for a given dimension of each of the sellers in a cluster.

In operation 714, the output engine may generate financing structuresfor a specified product sold by a seller based on the generated modeland a final price of the specified product set by the seller. The outputengine may generate the financing structure for a seller by determiningthe position of a cluster, including the seller along each of the subsetof dimensions. The output engine may receive a request for generatingthe financing structures based on a request received from a user deviceor a financial institution device.

FIG. 8 is a block diagram of example components of device 600. One ormore computer systems 800 may be used, for example, to implement any ofthe embodiments discussed herein, as well as combinations andsub-combinations thereof. Computer system 800 may include one or moreprocessors (also called central processing units, or CPUs), such as aprocessor 804. Processor 804 may be connected to a communicationinfrastructure or bus 806.

Computer system 800 may also include user input/output device(s) 803,such as monitors, keyboards, pointing devices, etc., which maycommunicate with communication infrastructure 806 through userinput/output interface(s) 802.

One or more of processors 804 may be a graphics processing unit (GPU).In an embodiment, a GPU may be a processor that is a specializedelectronic circuit designed to process mathematically intensiveapplications. The GPU may have a parallel structure that is efficientfor parallel processing of large blocks of data, such as mathematicallyintensive data common to computer graphics applications, images, videos,etc.

Computer system 800 may also include a main or primary memory 808, suchas random access memory (RAM). Main memory 808 may include one or morelevels of cache. Main memory 808 may have stored therein control logic(i.e., computer software) and/or data.

Computer system 800 may also include one or more secondary storagedevices or memory 810. Secondary memory 810 may include, for example, ahard disk drive 812 and/or a removable storage device or drive 814.

Removable storage drive 814 may interact with a removable storage unit818. Removable storage unit 818 may include a computer-usable orreadable storage device having stored thereon computer software (controllogic) and/or data. Removable storage unit 818 may be program cartridgeand cartridge interface (such as that found in video game devices), aremovable memory chip (such as an EPROM or PROM) and associated socket,a memory stick and USB port, a memory card and associated memory cardslot, and/or any other removable storage unit and associated interface.Removable storage drive 814 may read from and/or write to removablestorage unit 818.

Secondary memory 810 may include other means, devices, components,instrumentalities or other approaches for allowing computer programsand/or other instructions and/or data to be accessed by computer system800. Such means, devices, components, instrumentalities, or otherapproaches may include, for example, a removable storage unit 822 and aninterface 820. Examples of the removable storage unit 822 and theinterface 820 may include a program cartridge and cartridge interface(such as that found in video game devices), a removable memory chip(such as an EPROM or PROM) and associated socket, a memory stick and USBport, a memory card and associated memory card slot, and/or any otherremovable storage unit and associated interface.

Computer system 800 may further include a communication or networkinterface 824. Communication interface 824 may enable computer system800 to communicate and interact with any combination of externaldevices, external networks, external entities, etc. (individually andcollectively referenced by reference number 828). For example,communication interface 824 may allow computer system 800 to communicatewith external or remote devices 828 over communications path 826, whichmay be wired and/or wireless (or a combination thereof), and which mayinclude any combination of LANs, WANs, the Internet, etc. Control logicand/or data may be transmitted to and from computer system 800 viacommunication path 826.

Computer system 800 may also be any of a personal digital assistant(PDA), desktop workstation, laptop or notebook computer, netbook,tablet, smartphone, smartwatch or other wearables, appliance, part ofthe Internet-of-Things, and/or embedded system, to name a fewnon-limiting examples, or any combination thereof.

Computer system 800 may be a client or server, accessing or hosting anyapplications and/or data through any delivery paradigm, including butnot limited to remote or distributed cloud computing solutions; local oron-premises software (“on-premise” cloud-based solutions); “as aservice” models (e.g., content as a service (CaaS), digital content as aservice (DCaaS), software as a service (SaaS), managed software as aservice (MSaaS), platform as a service (PaaS), desktop as a service(DaaS), framework as a service (FaaS), backend as a service (BaaS),mobile backend as a service (MBaaS), infrastructure as a service (IaaS),etc.); and/or a hybrid model including any combination of the foregoingexamples or other services or delivery paradigms.

Any applicable data structures, file formats, and schemas in computersystem 800 may be derived from standards including but not limited toJavaScript Object Notation (JSON), Extensible Markup Language (XML), YetAnother Markup Language (YAML), Extensible Hypertext Markup Language(XHTML), Wireless Markup Language (WML), MessagePack, XML User InterfaceLanguage (XUL), or any other functionally similar representations aloneor in combination. Alternatively, proprietary data structures, formats,or schemas may be used, either exclusively or in combination with knownor open standards.

In some embodiments, a tangible, non-transitory apparatus or article ofmanufacture comprising a tangible, non-transitory computer useable orreadable medium having control logic (software) stored thereon may alsobe referred to herein as a computer program product or program storagedevice. This includes, but is not limited to, computer system 800, mainmemory 808, secondary memory 810, and removable storage units 818 and822, as well as tangible articles of manufacture embodying anycombination of the foregoing. Such control logic, when executed by oneor more data processing devices (such as computer system 800), may causesuch data processing devices to operate as described herein.

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections may set forth one or morebut not all exemplary embodiments of the present disclosure ascontemplated by the inventor(s), and thus, are not intended to limit thepresent disclosure and the appended claims in any way.

The present disclosure has been described above with the aid offunctional building blocks illustrating the implementation of specifiedfunctions and relationships thereof. The boundaries of these functionalbuilding blocks have been arbitrarily defined herein for the convenienceof the description. Alternate boundaries may be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the disclosure that others may, by applyingknowledge within the skill of the art, readily modify and/or adapt forvarious applications such specific embodiments, without undueexperimentation, without departing from the general concept of thepresent disclosure. Therefore, such adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teaching and guidance presentedherein. It is to be understood that the phraseology or terminologyherein is for the purpose of description and not of limitation, suchthat the terminology or phraseology of the present specification is tobe interpreted by the skilled artisan in light of the teachings andguidance.

The breadth and scope of the present disclosure should not be limited byany of the above-described exemplary embodiments but should be definedonly in accordance with the following claims and their equivalents.

What is claimed is:
 1. A computer-implemented method for generatingfinancing structures, the method comprising: managing, by a plurality ofhypervisors, concurrent execution of multiple instances of a pluralityof operating systems to provide hardware virtualization; performing filevirtualization, by a virtualized storage component of the hardwarevirtualization, to eliminate dependencies between data accessed at afile-level and a location where files are physically stored; performingblock virtualization, by the virtualized storage component of thehardware virtualization, to separate logical storage from physicalstorage to allow the data to be accessed without regard to aheterogeneous structure; extracting, by one or more computing devices, aplurality of data sets from the accessed data, to be associated with aplurality of sellers, each data set associated with a dimension of aplurality of dimensions used for generating a financing structure;identifying, by the one or more computing devices, using a learningengine, a subset of dimensions of the plurality of dimensions which theplurality of sellers use in a determination of a final price for a givenproduct for more than a threshold amount of occurrences, wherein thelearning engine is trained using the plurality of data sets; computing,by the one or more computing devices, using the learning engine, a valuefor each of the plurality of sellers with respect to each dimension ofthe subset of dimensions; generating, by the one or more computingdevices, using the learning engine, a model including the subset ofdimensions; determining, by the one or more computing devices, that aseller of the plurality of sellers has rejected the financing structure,wherein the financing structure comprises a first data set; determining,by the one or more computing devices, using the learning engine, arespective weight for each dimension of the subset of dimensions basedon a seller's position on the model; and generating, by the one orcomputing devices, a counter-offer financing structure comprising asecond data set, wherein at least one element of the first data set isreplaced by a new element to generate the second data set based on theposition of the seller on the model with respect to each dimension ofthe subset of dimensions and the respective weight of each dimension. 2.The computer implemented method of claim 1, wherein the plurality ofdata sets include attributes associated with determining the final pricefor the given product for each of the plurality of sellers.
 3. Thecomputer implemented method of claim 1, further comprising: continuouslyrecalibrating, by the one or more computing devices, using the learningengine, the respective weight for each dimension of the subset ofdimensions based on a variance of a user response to the counter-offerfinancing structure comprising the second data set.
 4. The computerimplemented method of claim 1, further comprising identifying, by theone or more computing devices, using the learning engine, the subset ofdimensions of the plurality of dimensions which cause a change in adetermination of an identified price for the given product by more thanthe threshold amount.
 5. The computer implemented method of claim 1,further comprising determining, by the one or more computing devices, avalue of a particular dimension for the seller, which changed based onanother value of a different dimension for the seller.
 6. The computerimplemented method of claim 1, further comprising receiving, by the oneor more computing devices, a request for generating one or morefinancing structures for the given product, from a seller device of theseller.
 7. The computer implemented method of claim 1, furthercomprising removing, by the one or more computing devices, data from theplurality of data sets, which is associated with some dimensions of theplurality of dimensions outside the subset of dimensions.
 8. Thecomputer implemented method of claim 1, wherein at least one dimensionis associated with the at least one element and the new element.
 9. Thecomputer implemented method of claim 1, further comprising determining,by the one or more computing devices, that the new element is within apredetermined threshold.
 10. A system for generating financingstructures, the system comprising: a memory; a processor incommunication with the memory configured to: manage, using a pluralityof hypervisors, concurrent execution of multiple instances of aplurality of operating systems to provide hardware virtualization;perform file virtualization, using a virtualized storage component ofthe hardware virtualization, to eliminate dependencies between dataaccessed at a file-level and a location where files are physicallystored; perform block virtualization, using the virtualized storagecomponent of the hardware virtualization, to separate logical storagefrom physical storage to allow the data to be accessed without regard toa heterogeneous structure; extract a plurality of data sets from theaccessed data, to be associated with a plurality of sellers, each dataset associated with a dimension of a plurality of dimensions used forgenerating a financing structure; identify, using a learning engine, asubset of dimensions of the plurality of dimensions which the pluralityof sellers use in a determination of a final price for a given productfor more than a threshold amount of occurrences, wherein the learningengine is trained using the plurality of data sets; remove data from theplurality of data sets which is associated with some dimensions of theplurality of dimensions outside the subset of dimensions; compute usingthe learning engine a value for each of the plurality of sellers withrespect to each dimension of the subset of dimensions; generate, usingthe learning engine, a model including the subset of dimensions;determine that a seller of the plurality of sellers has rejected thefinancing structure, wherein the financing structure comprises a firstdata set; determine, using the learning engine, a respective weight foreach dimension of the subset of dimensions based on a seller's positionon the model; and generate a counter-offer financing structurecomprising a second data set, wherein at least one element of the firstdata set is replaced by a new element to generate the second data setbased on the position of the seller on the model with respect to eachdimension of the subset of dimensions and the respective weight of eachdimension.
 11. The system of claim 10, wherein the plurality of datasets include attributes associated with determining the final price forthe given product for each of the plurality of sellers.
 12. The systemof claim 10, wherein the processor is further configured to:continuously recalibrate using the learning engine, the respectiveweight for each dimension of the subset of dimensions based on avariance of a user response to the counter-offer financing structurecomprising the second data set.
 13. The system of claim 10, wherein theprocessor is further configured to: identify, using the learning engine,the subset of dimensions of the plurality of dimensions which cause achange in a determination of an identified price for the given productby more than the threshold amount.
 14. The system of claim 10, whereinthe processor is further configured to: determine a value of aparticular dimension for the seller, which changed based on anothervalue of a different dimension for the seller.
 15. The system of claim10, wherein the processor is further configured to: receive a requestfor generating one or more financing structures for the given product,from a seller device of the seller.
 16. The system of claim 10, whereinat least one dimension is associated with the at least one element andthe new element.
 17. The system of claim 10, wherein the processor isfurther configured to: determine that the new element is within apredetermined threshold.
 18. A non-transitory computer-readable mediumstoring instructions that when executed by one or more processors of adevice cause the one or more processors to: manage, using a plurality ofhypervisors, concurrent execution of multiple instances of a pluralityof operating systems to provide hardware virtualization; perform filevirtualization, using a virtualized storage component of the hardwarevirtualization, to eliminate dependencies between data accessed at afile-level and a location where files are physically stored; performblock virtualization, using the virtualized storage component of thehardware virtualization, to separate logical storage from physicalstorage to allow the data to be accessed without regard to aheterogeneous structure; extract a plurality of data sets from theaccessed data, to be associated with a plurality of sellers, each dataset associated with a dimension of a plurality of dimensions used forgenerating a financing structure; identify using a learning engine, asubset of dimensions of the plurality of dimensions which the pluralityof sellers use in a determination of a final price for a given productfor more than a threshold amount of occurrences, wherein the learningengine is trained using the plurality of data sets; compute using thelearning engine a value for each of the plurality of sellers withrespect to each dimension of the subset of dimensions; generate, usingthe learning engine, a model including the subset of dimensions;determine that a seller of the plurality of sellers has rejected thefinancing structure, wherein the financing structure comprises a firstdata set; determine, using the learning engine, a respective weight foreach dimension of the subset of dimensions based on a seller's positionon the model; generate a counter-offer financing structure comprising asecond data set, wherein at least one element of the first data set isreplaced by a new element to generate the second data set based on theposition of the seller on the model with respect to each dimension ofthe subset of dimensions and the respective weight of each dimension.19. The non-transitory computer-readable medium of claim 18, wherein theinstructions are executed by the one or more processors to cause the oneor more processors to: continuously recalibrate, using the learningengine, the respective weight for each dimension of the subset ofdimensions based on a variance of a user response to the counter-offerfinancing structure comprising the second data set.
 20. Thenon-transitory computer-readable medium of claim 19, wherein ingenerating one or more financing structures for the seller, theinstructions are executed by the one or more processors to cause the oneor more processors to: determine, using the learning engine, a positionof a cluster including the seller for each of the subset of dimensions.